// 导入用户集合构造函数
const { User } = require('../../model/user');
const bcrypt = require('bcryptjs');

module.exports = async (req, res) => {
	// 接收请求参数
	const { email, password } = req.body;
	if (email.trim().length == 0 || password.trim().length == 0) return res.status(400).render('admin/error', { msg: '邮件地址或者密码错误' });
	let user = await User.findOne({ email });
	console.log("登录的用户为", user);
	// 查询到了用户
	if (user) {
		// console.log(password === user.password);
		//bcrypt经过加密之后返回返回的值和输入的值进行对比才比较为真，未经加密的密码比较永远为假
		console.log("服务器返回的密码为", user.password, "用户的输入为", password);
		let isValid = await bcrypt.compare(password, user.password);
		console.log("比较的结果为", isValid);
		// 如果密码比对成功
		if (isValid) {
			req.session.username = user.username;
			req.session.role = user.role;
			req.app.locals.userInfo = user;
			// 对用户的角色进行判断
			if (user.role == 'admin') {
				res.redirect('/admin/user');
			} else {
				res.redirect('/home/');
			}

		} else {
			res.status(400).render('admin/error', { msg: '邮箱地址或者密码错误' })
		}
	} else {
		res.status(400).render('admin/error', { msg: '邮箱地址或者密码错误' })
	}
}